/**
 * 给定一个 n×n 的二维矩阵matrix 表示一个图像。请你将图像顺时针旋转 90 度。
 *
 * 你必须在 原地 旋转图像，这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
 *
 *
 *这题看起来复杂，但只要掌握了规律就很简单。
 * 先把二维矩阵沿对角线反转，然后反转矩阵的每一行，结果就是顺时针反转整个矩阵。
 * 链接：https://leetcode.cn/problems/rotate-image
 */
class Rotate {
    public void rotate(int[][] matrix) {
        int row=matrix.length;
        int col=matrix[0].length;
        // 先沿对角线反转二维矩阵
        for(int i=0;i<row;i++) {
            for(int j=i;j<col;j++) {
                int tmp=matrix[i][j];
                matrix[i][j]=matrix[j][i];
                matrix[j][i]=tmp;
            }
        }
        // 然后反转二维矩阵的每一行
        for(int[] arr:matrix) {
            resverse(arr);
        }
        

    }
    public void resverse(int[] arr) {
        int left=0;
        int right=arr.length-1;
        while(left<right) {
            int tmp=arr[left];
            arr[left]=arr[right];
            arr[right]=tmp;
            left++;
            right--;
        }
    }
}